1. Field
The present disclosure relates generally to telecommunications, and more particularly, to techniques for estimating motion in video compression systems.
2. Background
In the world of telecommunications, where bandwidth is a fundamental limitation, video compression plays an important role in multimedia applications. Video compression can be used to dramatically decrease the information required to represent an image by eliminating redundant and non-essential material. This may be achieved by exploiting the fact that there are very few differences between two adjacent frames in a video sequence. Often the only difference is that some parts of the image have shifted slightly between frames. Video compression can be used to partition a current frame into macroblocks (i.e., a block of pixels) and search the previous frame to determine where each macroblock came from. If the content of the macroblock in the current frame can be located in the previous frame, then it does not need to be reproduced. The content can be represented by a “motion vector” indicating its displacement in the current frame from its position in the previous frame.
A process known as “motion estimation” is often used to determine the motion vectors for each macroblock in a current frame. The process includes a search algorithm that finds the best match between a macroblock in the current frame and a block of pixels from the previous frame. The search algorithm is generally performed using a Sum of Absolute Difference (SAD) computation, which is well known in the art. In particular, the motion estimation compares each macroblock in the current frame with its surrounding area in the previous frame and attempts to find a match indicated by the minimum SAD. The surrounding area is referred to as the “search space” and may be any size depending on the particular application and the overall design constraints.
Maximum video compression may be achieved when the motion estimation process is used to search the entire search space in the previous frame. At one extreme, this involves a comparison with each possible macroblock location in the search space. This type of search is typically referred to as an “exhaustive search.” Because the exhaustive search is expensive in terns of computation complexity and hardware, less exhaustive search algorithms have been proposed in the past for motion estimation. These less exhaustive search algorithms, or “limited search” algorithms, may search a considerably lower number of macroblock locations at the expense of compression.
Many existing motion estimation processes utilize a single limited search algorithm implemented in hardware. This restricts motion estimation performance to the algorithm of choice, and may prove to be inadequate in highly dynamic multimedia environments. Accordingly, there is a need in the art for an improved approach to perform motion estimation in video compression systems.